PouchDB একটি ওপেন সোর্স, JavaScript-ভিত্তিক ডাটাবেজ যা ব্রাউজারে চলতে সক্ষম এবং এটি CouchDB এর সাথে সিনক্রোনাইজেশন করতে সক্ষম। PouchDB এর সাহায্যে আপনি আপনার ডেটাবেজকে বিভিন্ন ডিভাইস বা সার্ভারের সাথে সিঙ্ক্রোনাইজ করতে পারেন। এতে দুটি প্রধান ধরনের রেপ্লিকেশন উপলব্ধ: Realtime Replication এবং One-time Replication।
Realtime Replication
Realtime Replication এর মাধ্যমে ডেটাবেজের মধ্যে চলমান তথ্য পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে সিঙ্ক্রোনাইজ হয়। এটি সাধারণত তখন ব্যবহৃত হয় যখন আপনি চান যে ডেটাবেজের যে কোনো পরিবর্তন একে অপরের সাথে দ্রুত ভাগ করা হোক, যেমন একাধিক ডিভাইসের মধ্যে ডেটা সিঙ্ক করা।
পদ্ধতি
Realtime Replication চালানোর জন্য PouchDB এর replicate মেথড ব্যবহার করা হয়। এখানে দুইটি প্যারামিটার দেওয়া হয়, প্রথমে স্থানীয় ডাটাবেজ এবং তারপর অন্য ডাটাবেজের URL।
const db = new PouchDB('local_db');
const remoteDb = new PouchDB('https://example.com/remote_db');
// Realtime Replication
db.replicate.to(remoteDb, { live: true, retry: true }).on('change', function(info) {
console.log('Replication changed', info);
}).on('paused', function(info) {
console.log('Replication paused', info);
}).on('active', function() {
console.log('Replication resumed');
}).on('error', function(err) {
console.log('Replication error', err);
});
প্রধান বৈশিষ্ট্যসমূহ:
live: true: এই অপশনটি রেপ্লিকেশনকে রিয়েলটাইম মোডে রাখে, মানে ডেটাবেজে কোন পরিবর্তন ঘটলে তা স্বয়ংক্রিয়ভাবে রেপ্লিকেট হবে।retry: true: যদি কোনো কারণে রেপ্লিকেশন ব্যর্থ হয়, তবে এটি পুনরায় চেষ্টা করবে।
ব্যবহার:
- মোবাইল অ্যাপ্লিকেশন যেখানে অফলাইন মোডে কাজ করা হয়, এবং যখন ডিভাইস আবার ইন্টারনেটের সাথে সংযুক্ত হয় তখন ডেটা আপডেট হয়।
- একাধিক ক্লায়েন্টে একই ডেটাবেজের পরিবর্তন সিঙ্ক করার জন্য।
One-time Replication
One-time Replication এর মাধ্যমে ডেটাবেজ একবারই সিঙ্ক্রোনাইজ করা হয়, এবং তারপর আর কোনো রেপ্লিকেশন ঘটবে না। এটি তখন ব্যবহৃত হয় যখন আপনি ডেটাবেজের একটি স্থির কপি চান, যা বিশেষ কোনো মুহূর্তে নেয়ার পর আর পরিবর্তন হবে না।
পদ্ধতি
One-time Replication চালানোর জন্য replicate মেথড ব্যবহার করা হয়, তবে live: false ব্যবহার করা হয় যাতে রেপ্লিকেশন একবারেই সম্পন্ন হয়ে যায়।
const db = new PouchDB('local_db');
const remoteDb = new PouchDB('https://example.com/remote_db');
// One-time Replication
db.replicate.to(remoteDb, { live: false }).on('complete', function(info) {
console.log('Replication complete', info);
}).on('error', function(err) {
console.log('Replication error', err);
});
প্রধান বৈশিষ্ট্যসমূহ:
live: false: এই অপশনটি শুধুমাত্র একবার ডেটা সিঙ্ক করে এবং তারপরে আর কোনো পরিবর্তন হবে না।
ব্যবহার:
- এককালীন ব্যাকআপ তৈরি করা।
- ডেটাবেজের ক্লোন বা কপি তৈরি করা।
- যখন আপনি ডেটাবেজের কেবল একবার সিঙ্ক্রোনাইজেশন করতে চান এবং তা পরবর্তী সময়ে আপডেট হবে না।
রেপ্লিকেশন সুবিধা
- Offline Support: PouchDB এর মাধ্যমে আপনি অফলাইন মোডে কাজ করতে পারেন এবং ইন্টারনেট কানেকশন পুনরায় ফিরে আসলে ডেটা সিঙ্ক করতে পারেন।
- ডিস্ট্রিবিউটেড ডেটাবেজ: একাধিক ডিভাইসে ডেটা সিঙ্ক্রোনাইজ করতে পারা, বিশেষত মোবাইল অ্যাপ্লিকেশন এবং ওয়েব অ্যাপ্লিকেশনগুলোতে।
- Data Consistency: Realtime Replication ডেটা কনসিস্টেন্সি নিশ্চিত করে, যেখানে একই ডেটা বিভিন্ন জায়গায় সিঙ্ক্রোনাইজ হয়ে থাকে।
সারাংশ
PouchDB এর Realtime এবং One-time Replication দুটি পদ্ধতি প্রদান করে, যা আপনাকে বিভিন্ন ডিভাইসে ডেটা সিঙ্ক্রোনাইজ করতে সহায়তা করে। Realtime Replication বাস্তব সময়ের সিঙ্ক্রোনাইজেশন নিশ্চিত করে, যখন One-time Replication এককালীন ডেটা সিঙ্ক করে। এগুলো ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনগুলোর ডেটা সিঙ্ক্রোনাইজেশন প্রক্রিয়া আরও উন্নত করতে পারেন।
Read more